// packageDZ/compontents/cumul-score/cumul-score.js

let reqJs = require('../../utils/req.js')

import {
    areaList
} from '@vant/area-data';


/**
 * 组件接收2个参数
 * 1、所有数据的对象
 * 2、判断是否是否显示和隐藏
 * **/
const app = getApp();
Component({
    options: {
        addGlobalClass: true,
    },
    /**
     * 组件的属性列表
     */
    properties: {
        popupData: {
            type: Object,
            value: {},
            observer: function (newVal, oldVal) {
                // 页面被展示
                if (newVal) {
                    console.log('>>>>>>>值变化了', newVal)
                    this.setData({
                        projectDate: newVal
                    })


                    // if (newVal.pid) {
                    //     this.payCount(newVal)
                    // }
                }

            },
        },
        popupShow: {
            type: Boolean,
            value: false,
            observer: function (newVal, oldVal) {

                console.log('>>>>>>>值变化了', newVal, oldVal)
                // 页面被展示
                if (newVal) {

                    this.setData({
                        popupShow: newVal
                    })
                    console.log(this.data)

                    if (this.data.popupType == 4) {
                        // this.pushTime()

                    }
                    if (this.data.popupType == 17) {
                        this.getCarStore()
                    }
                }

            },
        },
        // 蒙版点击关闭弹窗
        maskClickClose: {
            type: Boolean,
            value: true,
        },
        popupType: {
            type: Number,
            value: 0
        },
        msg: {
            type: String,
            value: ""
        },
        // 弹窗内容显示位置，默认底部弹出
        // top	顶部弹出
        // center	居中弹出
        // bottom	底部弹出
        type: {
            type: String,
            value: "center"
        },

    },

    /**
     * 组件的初始数据
     */
    data: {

        projectDate: "",
        popupShow: false,
        payPopup: false, //充值
        payCountData: {
            // 以下是测试数据
            // money:10.00,
            // deduction:1,
            // rent :2,
            // total  :'3.00',
            // percentage:10,//不是接口数据 是计算后的
        }, //支付数据


        // 留资信息数据
        nameVal: '', //姓名
        genderRange: ['先生', '女士'], // 选择器选项
        genderIndex: 0, // 默认选择索引为0（即“先生”）
        phoneVal: '', //手机号
        codeVal: '', //验证码
        isCheck: false, //是否选择隐私协议
        isSend: false, //是否发送验证码
        sendTime: '', //倒计时时间

        isSuo: true,
        pushTime: "10:00、12:00、14:00",

        textList: [
            "扫描EN和烨系列车型，观看技术点内容生成海宝转发成功可获得精美礼品",
            "打卡安全智能化技术体验区和强电智混技术体验区可获得精美礼品",
            "到muji区域拍摄精美展台照片，转发成功有机会获得精美礼品",
        ],



        addressList: areaList,
        address: '',
        city: '上海市',
        addressMode: false, //选择弹窗


        carArr: [
            // { id: 15, name: "GS3 POWER" },
            // { id: 16, name: "GS4" },
            // { id: 17, name: "GS4 PLUS" },
            // { id: 18, name: "GS8" },
            // { id: 19, name: "影酷" },
            // { id: 20, name: "影豹" },
            // { id: 21, name: "M6 PRO" },
            // { id: 22, name: "M8" },
        ], //意向车型列表
        // 原数据保留
        purposeCar: "",
        car_id: 0,
        dealerId: 0, // 选中的经销商ID
        dealer: "", // 选中的经销商名称
        getIntentionCarListData: [], // 原始数据



        multiArray: [
            [],
            []
        ], // 二维数组：第一列经销商，第二列车型
        multiIndex: [0, 0], // 当前选中索引
        dealers: [], // 原始经销商数据
        selectedInfo: null // 选中的结果
    },

    // 组件生命周期
    lifetimes: {
        attached: function () {
            console.log(this.data)
        },
        ready: function () {
            console.log('ready>>>>>')
        }
    },

    //页面生命周期
    pageLifetimes: {
        show: function () {
            console.log('>>>>>>>更新数据了')


        }
    },


    /**
     * 组件的方法列表
     */
    methods: {
        onGenderChange: function (e) {
            this.setData({
                genderIndex: e.detail.value
            });

            // 获取选中的性别文本
            const selectedGender = this.data.genderRange[this.data.genderIndex];

            // 可以在这里添加后续处理逻辑，比如提交表单、保存到本地存储等
            console.log('用户选择的性别是：', selectedGender);
        },
        getPhone(code) {

            let data = {
                code,
            }
            app.$http.get('/hd_project/Play/getPhoneByCode', data, ).then(res => {

                wx.hideLoading()

                if (res.code == 200) {
                    this.setData({
                        phoneVal: res.data
                    })

                } else {
                    wx.showModal({
                        title: '失败',
                        content: rse.msg,
                        complete: (res) => {
                            if (res.cancel) {

                            }

                            if (res.confirm) {

                            }
                        }
                    })
                }
            })
        },
        getPhoneNumber(e) {
            console.log(e)
            wx.showLoading()
            if (e.detail.errMsg === 'getPhoneNumber:ok') {
                // 用户同意授权，可以获取手机号
                const code = e.detail.code;
                // 将code发送到后端服务器进行手机号换取
                console.log(code);
                this.getPhone(code);
            } else {
                // 用户拒绝授权
                console.log('用户拒绝授权获取手机号');
                wx.showToast({
                    title: '请授权手机号码',
                    icon: "error"
                })
            }
        },
        // // 列变化时的联动逻辑
        // bindMultiPickerColumnChange(e) {
        // 	const {
        // 		column,
        // 		value
        // 	} = e.detail;
        // 	const {
        // 		dealers,
        // 		multiArray,
        // 		multiIndex
        // 	} = this.data;

        // 	if (column === 0) { // 第一列变化时更新第二列
        // 		const newCars = dealers[value].cars;
        // 		this.setData({
        // 			multiArray: [multiArray[0], newCars],
        // 			multiIndex: [value, 0]
        // 		});
        // 	}
        // },
        // 修改后的列变化联动逻辑
        bindMultiPickerColumnChange(e) {
            const {
                column,
                value
            } = e.detail;
            const {
                cars
            } = this.data;

            if (column === 0) {
                // 获取当前选中车型的经销商列表并打乱
                const selectedCar = cars[value];
                const shuffledDealers = this.shuffleArray(selectedCar.store_list);

                this.setData({
                    // 维护两个数据源：
                    // multiArray用于显示名称
                    // dealers存储完整的经销商对象
                    dealers: shuffledDealers,
                    multiArray: [
                        this.data.multiArray[0], // 保持车型列不变
                        shuffledDealers.map(d => d.store_name)
                    ],
                    multiIndex: [value, 0]
                });
            }
        },

        // // 确认选择
        // bindMultiPickerChange(e) {

        // 	const {
        // 		value
        // 	} = e.detail;
        // 	const [dealerIndex, carIndex] = value;
        // 	const {
        // 		dealers,getIntentionCarListData
        // 	} = this.data;

        // 	this.setData({
        // 		selectedInfo: {
        // 			dealer: dealers[dealerIndex].name,
        // 			distributorFullName: dealers[dealerIndex].fullName,
        // 			dealerId: getIntentionCarListData[dealerIndex].code,
        // 			car_id: getIntentionCarListData[dealerIndex].carList[carIndex].id,
        // 			car: dealers[dealerIndex].cars[carIndex],
        // 			purposeCar:dealers[dealerIndex].cars[carIndex],
        // 		},
        // 		multiIndex: value
        // 	});
        // 	console.log(this.data.selectedInfo)
        // },

        // 修改后的确认选择处理
        bindMultiPickerChange(e) {
            const {
                value
            } = e.detail;
            const [carIndex, dealerIndex] = value;
            const {
                cars,
                dealers
            } = this.data;
            
            // 直接从维护的对象数组中获取数据
            const selectedCar = cars[carIndex];
            const selectedDealer = dealers[dealerIndex];

            console.log(this.data)

            this.setData({
                selectedInfo: {
                    car: selectedCar.carName,
                    car_id: selectedCar.carid,
                    dealer: selectedDealer.store_name,
                    dealerId: selectedDealer.store_id,
                    // distributorFullName: selectedDealer.fullName
                },
                multiIndex: value
            });
        },

        // // 确认选择时的最终处理（可选，绑定到confirm事件）
        // bindMultiPickerChange() {
        // 	console.log('经销商：', this.data.selectedDealerName);
        // 	console.log('经销商id：', this.data.selectedDealerId);
        // 	console.log('车型：', this.data.purposeCar);
        // 	console.log('车型id：', this.data.car_id);
        // },
        // 车型列表接口
        getCarStore() {
            var that = this


            reqJs.getCarStore().then(res => {

                console.log('>>>>>', res)
                if (res.code == '200') {

                    // 打乱车型顺序
                    const shuffledCars = this.shuffleArray(res.data);
                   
                    const shuffledDealers = this.shuffleArray(shuffledCars[0].store_list);

                    // 初始化数据
                    this.setData({
                        cars: shuffledCars, // 存储车型对象数组
                        dealers: shuffledDealers, // 存储经销商对象数组
                        multiArray: [
                            shuffledCars.map(c => c.carName), // 第一列显示车型名称
                            shuffledDealers.map(c => c.store_name), // 第一列显示车型名称
                             // 第二列显示经销商名称
                        ]
                    });

                    console.log(this.data)

                    // // 处理数据格式
                    // const dealers = res.data.map(dealer => ({
                    // 	name: dealer.name,
                    // 	cars: dealer.carList.map(car => car.name)
                    // }));

                    // this.setData({
                    // 	getIntentionCarListData:res.data,
                    // 	dealers,
                    // 	multiArray: [
                    // 		dealers.map(d => d.name), // 第一列数据
                    // 		dealers[0].cars // 第二列初始数据
                    // 	]
                    // });

                } else {
                    wx.showModal({
                        title: '目前网络繁忙',
                        content: '请点击确定,重新刷新页面',
                        success(res) {
                            if (res.confirm) {
                                that.getCarStore()
                            } else if (res.cancel) {}
                        }
                    })
                }


            }).catch(error => {
                console.log(error)
            })



        },
        // 通用数组随机排序方法
        shuffleArray(array) {
            return array.slice().sort(() => Math.random() - 0.5);
        },
        //  选择器
        // 意向车型选择
        bindChangeCar(e) {
            console.log(e)
            var num = e.detail.value
            var purposeCar = this.data.carArr[num].name
            var car_id = this.data.carArr[num].id
            this.setData({
                purposeCar: purposeCar,
                car_id: car_id,
            })
            console.log(this.data.purposeCar)
            console.log(this.data.car_id)
        },
        //选择城市弹窗 ==开始
        addresstap() {
            this.setData({
                addressMode: true
            })
        },
        addrescancel() {
            this.setData({
                addressMode: false
            })
        },
        addressonClose() {
            this.setData({
                addressMode: false
            })
        },


        addressOnChange(event) {
            console.log(event)
            const address = event.detail.values;
            this.setData({
                address,
            })
        },
        addressconfirm(e) {
            console.log(e)
            const address = e.detail.values;

            this.setData({
                address,
                addressMode: false,
                province: address[0].name,
                city: address[1].name,
            })
        },


        closePopup() {
            if (!this.data.maskClickClose) return
            this.setData({
                popupShow: false,
            })
            this.triggerEvent('close')
        },
        // 新
        // 我知道了
        zhidao() {
            this.closeModeAi()
            this.triggerEvent('zhidao', {
                data: '关闭生成中的窗口'
            })

        },
        // 点击再来一次
        repeat() {
            this.closeModeAi()
            // 重新进入答题页面
            wx.reLaunch({
                url: "/pages/answers/answers?id=" + this.data.projectDate.id
            })
        },
        // 是否选择隐私协议
        checkChange() {

            let isCheck = !this.data.isCheck
            this.setData({
                isCheck,
            })
        },

        pushTime() {
            reqJs.pushTime().then(res => {

                console.log('>>>>>', res)
                if (res.data != "") {
                    let pushTime = res.data
                    this.setData({
                        pushTime,
                    })
                }


            }).catch(error => {
                console.log(error)
            })
        },

        // 获取验证码
        getCodeNum() {
            let that = this
            console.log('>>>>>>>>>>>获取到验证码')
            let preg = /^(0|86|17951)?(13[0-9]|15[0-9]|17[0-9]|18[0-9]|14[0-9]|19[0-9]|16[0-9])[0-9]{8}$/
            if (that.data.phoneVal == '' || !preg.test(that.data.phoneVal)) {
                wx.showToast({
                    title: '手机号格式错误!',
                    icon: 'none'
                })
                return
            }
            let data = {
                phone: that.data.phoneVal
            }

            app.$http.get('/Basic/getVerificationCode', data, false, "").then(res => {
                if (res.code === 200) {
                    wx.showToast({
                        title: '验证码已发送.请注意接收',
                        icon: 'none',
                    })
                    let time = 60;
                    var timers = setInterval(function () {
                        time--;
                        if (time > 0) {
                            that.setData({
                                sendTime: time,
                                isSend: true
                            });
                        } else {
                            that.setData({
                                isSend: false,
                                sendTime: '',
                            });
                            clearInterval(timers)
                        }
                    }, 1000)
                } else {
                    wx.showToast({
                        title: res.message,
                        icon: "none"
                    })
                }
            })
        },
        toH5() {
            wx.navigateTo({
                url: '/pages/h5/webView',
            })
        },
        // 提交信息
        confirmMsg() {
            wx.showLoading()

            if (this.data.isSuo) {

                // if (this.data.nameVal == '' || this.data.phoneVal == '' || this.data.codeVal == '') {
                if (this.data.nameVal.trim() == '' || this.data.phoneVal.trim() == '') {
                    wx.showToast({
                        title: '填空项不能为空',
                        icon: 'none'
                    })
                    return
                }
                if (!this.data.isCheck) {
                    wx.showToast({
                        title: '请勾选同意隐私条款',
                        icon: 'none'
                    })
                    return
                }
                // 验证手机号格式是否正确
                let preg = /^(0|86|17951)?(13[0-9]|15[0-9]|17[0-9]|18[0-9]|14[0-9]|19[0-9]|16[0-9])[0-9]{8}$/
                if (!preg.test(this.data.phoneVal)) {
                    wx.showToast({
                        title: '手机号格式错误!',
                        icon: 'none'
                    })
                    return
                }

                // if (this.data.address == "") {
                //     wx.showToast({
                //         title: '请选择城市',
                //         icon: 'none',
                //         duration: 2000
                //     })
                //     return false;
                // }
                if (this.data.selectedInfo == null) {
                    wx.showToast({
                        title: '请选择意向车型',
                        icon: 'none',
                        duration: 2000
                    })
                    return false;
                }

                let data = {
                    openid: wx.getStorageSync('openid'),
                    phone: this.data.phoneVal,
                    name: this.data.nameVal,
                    sex: this.data.genderRange[this.data.genderIndex],
                    // city: this.data.city,
                    // intentionCar: this.data.purposeCar ? this.data.purposeCar : this.data.carArr[0].name,
                    // verificationCode: this.data.codeVal,

                    car: this.data.selectedInfo.car,
                    carid: this.data.selectedInfo.car_id,
                    store: this.data.selectedInfo.dealer,
                    store_id: this.data.selectedInfo.dealerId,

                    from_id: wx.getStorageSync('from_id') ? parseInt(wx.getStorageSync('from_id')) : 1,
                    // distributorFullName: this.data.selectedInfo.distributorFullName,

                }

                this.setData({
                    isSuo: false
                })
                setTimeout(() => {
                    this.setData({
                        isSuo: true
                    })
                }, 1500)

                console.log(data)
                // return

                app.$http.post('/hd_project/Play/saveUserInfo', data, false, "json").then(res => {

                    wx.hideLoading()
                    if (res.code == 200) {
                        setTimeout(() => {
                            this.setData({
                                isSuo: true
                            })
                        }, 1500)
                        wx.showToast({
                            title: '提交成功!',
                            icon: 'none'
                        })
                        this.triggerEvent('confirmMsg', {
                            isSuc: true
                        })
                        this.closeMode()

                    } else {
                        wx.showToast({
                            title: res.msg,
                            icon: 'none'
                        })
                        setTimeout(() => {
                            this.setData({
                                isSuo: true
                            })
                        }, 1500)
                    }
                })
            } else {
                console.log('>>>>>>触发太频繁了，请重试')
                wx.showToast({
                    title: '触发太频繁了，请重试',
                    icon: 'none'
                })
            }
        },


        // 老 =开始
        xunbaoTap() {
            wx.navigateTo({
                url: '/packageW/pages/treasureHunting/treasureHunting'
            })
        },
        confirmPay() {
            //在这里写接口请求



            this.setData({
                popupShow: false,
            })
            // 请求充值支付接口
            this.triggerEvent('confirmPay', {
                data: true
            })

        },


        // 调起用户支付接口
        gopayMoney() {


            this.triggerEvent('gopayMoney', {
                data: '支付成功了'
            })
        },


        // 关闭弹窗
        closeMode() {
            this.setData({
                popupShow: false
            })
        },
        // 关闭弹窗
        closeModeAi(e) {
            console.log(e)

            if (e.currentTarget.dataset.text) {

            }
            this.triggerEvent('closeModeAi', {
                data: e.currentTarget.dataset.text ? e.currentTarget.dataset.text : '关闭生成中的窗口'
            })
            this.setData({
                popupShow: false
            })
        },
        // 继续轮询
        confirmAi() {
            this.triggerEvent('confirmAi', {
                data: '关闭生成中的窗口'
            })

        },
        toHome() {
            wx.reLaunch({
                url: '/pages/index/index'
            })
        },
        // 打卡或者开始游戏接口
        payCount(reqData) {
            wx.showLoading()

            let that = this

            if (reqData.pid && reqData.goods_id && reqData.num) {
                let data = {
                    openid: wx.getStorageSync('openid'),
                    pid: reqData.pid,
                    goods_id: reqData.goods_id,
                    num: reqData.num,
                }


                app.$http.get('/Comics/payCount', data, false, "json").then(res => {
                    console.log(res)
                    wx.hideLoading()
                    if (res.code == 200) {
                        console.log(res)
                        let payCountData = res.data
                        payCountData.percentage = Math.round(payCountData.deduction / payCountData.money * 100);
                        that.setData({
                            payCountData: res.data
                        })
                    } else {
                        wx.hideLoading()
                        wx.showToast({
                            title: res.msg,
                            icon: "none"
                        })
                    }

                })
            }




        },

        // 优惠券点击确定
        confirmCouponPopup() {
            this.triggerEvent('confirmCouponPopup')
            this.closeMode()
        },

        // 优惠券点击取消
        closeCouponPopup() {
            this.triggerEvent('closeCouponPopup')
            this.closeMode()
        },
        // 老 = 结束



    }
})